983. Minimum Cost For Tickets
마지막 수정일: 2025. 05. 22.
dp 문제
leetcode에서의 첫 dp 문제여서 생각보다 오래걸렸음
논리 연산자의 우선순위가 사칙연산보다 낮아서 괄호로 꼭 묶어줘야 함
var mincostTickets = function(days, costs) {
let dp = new Array(366).fill(0) // number 0~365
const [one, seven, thirty] = costs;
let result = 0
for(let i=0; i<days.length; i++){
const date = days[i];
dp[date] = Math.min(
(dp[date-1] || 0) + one,
(dp[date-7] || 0) + seven,
(dp[date-30] ||0) + thirty
)
if(i !== days.length-1){
dp.fill(dp[date], date, days[i+1])
}else{
result = dp[date]
}
}
return result
};